$(document).ready(function(){
	project_js.init();
	$("#page_title").html("干预项目");
});
var project_js = {};
project_js.init = function(){
	vm.set_date_title();
	vm.load();
}
project_js.bind = function(){
	//每次动画完结过要除去动画样式
	$(document).on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend','.animated',function(){
		$(this).removeClass('shake');
	});		
}
project_js.project_list = [
		{
			//项目ID
			dicttestitemid:1,
			//这个ID现在暂时只用于get_project_value方法里面，很有可能是小庄拿错参数了
			dictlibraryid:0,
			//单位
			unit:'kg',
			//类型，比如数值型和阴阳型
			libraryname:'数值型',
			//名称
			testname:'体重',
			//代号
			testcode:'',
			//当前时间上下文中对应的值，这个要再次远程获取
			value:'120',
			//当项目的类型是阴阳型时的可选项
			values:[],
		},	
		{
			//项目ID
			dicttestitemid:2,
			//这个ID现在暂时只用于get_project_value方法里面，很有可能是小庄拿错参数了
			dictlibraryid:0,
			//单位
			unit:'',
			//类型，比如数值型和阴阳型
			libraryname:'阴阳型',
			//名称
			testname:'尿酮',
			//代号
			testcode:'',
			//当前时间上下文中对应的值，这个要再次远程获取
			value:'无显示',
			//当项目的类型是阴阳型时的可选项
			values:['未检测','无显示','+','++','+++','++++'],
		},		
		//血压是特殊的
		{
			//项目ID
			dicttestitemid:3,
			//这个ID现在暂时只用于get_project_value方法里面，很有可能是小庄拿错参数了
			dictlibraryid:0,
			//单位
			unit:'mmHg',
			//类型，比如数值型和阴阳型
			libraryname:'数值型',
			//名称
			testname:'血压',
			//代号
			testcode:'',
			//血压的值要进行切割
			value:'666/222',
			//当项目的类型是阴阳型时的可选项
			values:[],
		},			
];
var vm = avalon.define({
	//标记是否显示遮罩
	is_mask_show:false,	
	$id:"main_controller",
	//----------------
	//toast的信息
	toast_msg:'',
	//是否要展示toast
	is_toast_show:false,
	//定时器
	$timeout:0,
	//消息隐藏
	clear_toast:function(){
		//设置定时器
		if(vm.$timeout){
			clearTimeout(vm.$timeout);
		}
		vm.$timeout = setTimeout(function(){
			vm.is_toast_show = false;
			vm.toast_msg = '';
		},3000);		
	},	
	//-----------------	
	//所有的项目
	project_list:
	[
//		{
//			//项目ID
//			dicttestitemid:0,
//			//这个ID现在暂时只用于get_project_value方法里面，很有可能是小庄拿错参数了
//			dictlibraryid:0,
//			//单位
//			unit:'',
//			//类型，比如数值型和阴阳型
//			libraryname:'',
//			//名称
//			testname:'',
//			//代号
//			testcode:'',
//			//当前时间上下文中对应的值，这个要再次远程获取
//			value:'',
//			value_l:'',
//			value_h:'',
//			//当项目的类型是阴阳型时的可选项
//			values:[],
//		},
	],
	//时间标题
	date_title:'',
	//设置时间标题
	set_date_title:function(){
		var date = common.getUrlParam('date');
		vm.date_title = date.split('-')[1]+"/"+date.split('-')[2];
	},	
	//加载数据
	load:function(){
		vm.is_mask_show = true;
		$.ajax({
			type:"post",
			url:get_project_url,
			dataType:"json",
			data:'date='+common.getUrlParam('date'),			
			success:function(data){
				vm.is_mask_show = false;
				console.log(data);		
				var list = data;
				//这里要对血压进行处理
				$.each(list, function(index) {    
					if(list[index].testname == "血压"){
						var value = list[index].value;
						if(value){
							try{
								list[index].value_l = value.split('/')[1];
								list[index].value_h = value.split('/')[0];
							}catch(e){
								//TODO handle the exception
								console.log(e);
							}
						}else{
							list[index].value_l = '';
							list[index].value_h = '';
						}
					}else{
						list[index].value_l = list[index].value_h = "";
					}
				});
				console.log(list);
				vm.project_list = data;				
			},	
			error:function(){
				vm.is_mask_show = false;
				vm.toast_msg = "网络错误";
				vm.is_toast_show = true;
				vm.clear_toast();					
			},			
		});	
	},
	//展示模态框
	show_modal:function(target,index){
		$(target).modal('show');
		var obj = vm.project_list[index];
		if(obj.testname != "血压"){
			vm.lin_value = obj.value;
		}else{
			vm.lin_value_h = obj.value_h;
			vm.lin_value_l = obj.value_l;
		}
		$(target+" .modal-backdrop").unbind('click');
		$(target+" .modal-backdrop").get(0).addEventListener('touchend',function(){
			vm.cancel(target,index);
		});
	},
	//改变选择的值
	select_change:function(value,id){
		vm.is_mask_show = true;
		var obj = {};
		for(var i=0;i<vm.project_list.length;i++){
			if(vm.project_list[i].dicttestitemid == id){
				obj = vm.project_list[i];
				break;
			}
		}
		obj.value = value;
		$("#modal-"+id).modal('hide');
		//这里要进行提交 date id content
		var fd = new FormData();
		fd.append("id",obj.dicttestitemid);
		fd.append('date',common.getUrlParam('date'));
		fd.append('content',obj.value);		
		$.ajax({
			type:"post",
			url:add_project_url,
			dataType:"json",
			data:fd,			
			processData: false,
			contentType: false,			
			success:function(data){
				vm.is_mask_show = false;
				if(data.status == 1){
					vm.toast_msg = "操作成功";
				}else if(data.status == 2){
					vm.toast_msg = "操作失败";
				}else{
					vm.toast_msg = "服务器异常";
				}
				vm.is_toast_show = true;
				vm.clear_toast();						
			},	
			error:function(){
				vm.is_mask_show = false;
				$this.button('reset');
				vm.toast_msg = "网络错误";
				vm.is_toast_show = true;
				vm.clear_toast();					
			},			
		});			
	},
	//提交
	//校验规则，可不填，但填了就得是数值
	submit:function(target,index){
		var obj = vm.project_list[index];
		var testname = obj.testname;
		//判断是否是血压的情况
		if(testname != "血压"){
			if(!obj.value || !obj.value.trim()){
				vm.toast_msg = "请输入"+testname;
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}
			if(obj.value.trim() && volidate_js.is_num(obj.value.trim())==false){
				vm.toast_msg = "请输入数字";
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;
			}
			//这里验证范围
			if(new Number(obj.value)>obj.limithigh || new Number(obj.value)<obj.limitlow){
				vm.toast_msg = testname+"取值范围是"+obj.limitlow+"~"+obj.limithigh;
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}
		}else{
			//控制两个值必填
			if(!obj.value_h || !obj.value_h.trim()){
				vm.toast_msg = "请输入收缩压";
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}
			if(!obj.value_l || !obj.value_l.trim()){
				vm.toast_msg = "请输入舒张压";
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}			
			//血压的话就要检查两个值
			if(obj.value_h.trim() && volidate_js.is_num(obj.value_h.trim())==false){
				vm.toast_msg = "请输入数字";
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;
			}				
			if(obj.value_l.trim() && volidate_js.is_num(obj.value_l.trim())==false){
				vm.toast_msg = "请输入数字";
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;
			}
			//验证两个值的范围
			if(new Number(obj.value_h.trim())>obj.limithigh || new Number(obj.value_h.trim())<obj.limitlow){
				vm.toast_msg = testname+"范围是"+obj.limitlow+"~"+obj.limithigh;
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}
			if(new Number(obj.value_l.trim())>obj.limithigh || new Number(obj.value_l.trim())<obj.limitlow){
				vm.toast_msg = testname+"范围是"+obj.limitlow+"~"+obj.limithigh;
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;				
			}	
			if(new Number(obj.value_h.trim())<new Number(obj.value_l.trim())){
				vm.toast_msg = '收缩压小于舒张压了';
				vm.is_toast_show = true;
				vm.clear_toast();
				return ;						
			}
			obj.value = obj.value_h+"/"+obj.value_l;
			
		}
		vm.lin_value = obj.value;		
		vm.lin_value_h = obj.value_h;
		vm.lin_value_l = obj.value_l;		
		//下面的这些就是提交代码了
		var $this = $(this);
		var fd = new FormData();
		fd.append("id",obj.dicttestitemid);
		fd.append('date',common.getUrlParam('date'));
		fd.append('content',obj.value);
		$this.button('loading');
		vm.is_mask_show = true;
		$.ajax({
			type:"post",
			url:add_project_url,
			dataType:"json",
			data:fd,			
			processData: false,
			contentType: false,			
			success:function(data){
				vm.is_mask_show = false;
				$this.button('reset');
				if(data.status == 1){
					vm.toast_msg = "操作成功";
					$(target).modal('hide');
				}else if(data.status == 2){
					vm.toast_msg = "操作失败";
				}else{
					vm.toast_msg = "服务器异常";
				}
				vm.is_toast_show = true;
				vm.clear_toast();						
			},	
			error:function(){
				vm.is_mask_show = false;
				$this.button('reset');
				vm.toast_msg = "网络错误";
				vm.is_toast_show = true;
				vm.clear_toast();					
			},			
		});		
	},
	//取消选择
	cancel:function(target,index){
		var obj = vm.project_list[index];
		obj.value = vm.lin_value;
		obj.value_h = vm.lin_value_h;
		obj.value_l = vm.lin_value_l;
		$(target).modal('hide');
	},
	//用来保存临时值
	lin_value:'',
	lin_value_h:'',
	lin_value_l:'',
});
avalon.scan();
avalon.ready(function(){
	$('body').css('opacity',1);
});
